import { defHttp } from '@/utils/http/axios';

enum Api {
  // 审批列表接口
  queryCheckedRecordList = '/sys/checked/record/queryCheckedRecordList',
  // 审批操作接口
  checkedHandle = '/sys/checked/record/checkedHandle',
  // 打标记录列表接口
  queryMarkingRecordList = '/sys/marking/record/queryMarkingRecordList',
}

/**
 * 获取审批列表
 * @param params 查询参数
 * @returns 审批列表数据
 */
export function getApprovalListAPI(params) {
  // 处理分页参数
  const requestParams = {
    current: params.page || params.current || 1,
    size: params.pageSize || params.size || 10,
    userName: params.userName,
    checkedStatus: params.checkedStatus,
  };

  return defHttp
    .post(
      {
        url: Api.queryCheckedRecordList,
        params: requestParams,
      },
      {
        isTransformResponse: false,
      },
    )
    .then((res) => {
      if (res.code === 200 && res.data) {
        const { records, total } = res.data;
        return {
          items: records || [],
          total: total || 0,
        };
      }
      return {
        items: [],
        total: 0,
      };
    })
    .catch((err) => {
      console.error('获取审批列表失败:', err);
      return {
        items: [],
        total: 0,
      };
    });
}
export function querySettlementRecordList(params) {
  // 处理分页参数

  return defHttp
    .post(
      {
        url: '/sys/settlement/record/querySettlementRecordList',
        params: params,
      },
      {
        isTransformResponse: false,
      },
    )
    .then((res) => {
      if (res.code === 200 && res.data) {
        const { records, total } = res.data;
        return {
          items: records || [],
          total: total || 0,
        };
      }
      return {
        items: [],
        total: 0,
      };
    })
    .catch((err) => {
      console.error('获取审批列表失败:', err);
      return {
        items: [],
        total: 0,
      };
    });
}
export function settlementHandle(params) {
  // 处理分页参数

  return defHttp
    .post(
      {
        url: '/sys/settlement/record/settlementHandle',
        params: params,
      },
      {
        isTransformResponse: false,
      },
    )
    .then((res) => {
      if (res.code === 200 && res.data) {
        return res;
      }
    })
    .catch((err) => {
      console.error('获取审批列表失败:', err);
      return {
        items: [],
        total: 0,
      };
    });
}

// 完成结算接口
export function finishSettlementHandle(params) {
  return defHttp
    .post(
      {
        url: '/sys/settlement/record/finishSettlementHandle',
        params: params,
      },
      {
        isTransformResponse: false,
      },
    )
    .then((res) => {
      if (res.code === 200) {
        return res;
      }
    })
    .catch((err) => {
      console.error('完成结算失败:', err);
      return null;
    });
}
/**
 * 审批操作
 * @param params 审批参数
 * @returns 操作结果
 */
export function doApprovalAPI(params) {
  return defHttp
    .post(
      {
        url: Api.checkedHandle,
        params: {
          id: params.id,
          checkedStatus: params.checkedStatus,
          userId: params.userId,
          refusalReason: params.refusalReason,
          remark: params.remark,
        },
      },
      {
        isTransformResponse: false,
      },
    )
    .then((res) => {
      return res;
    })
    .catch((err) => {
      console.error('审批操作失败:', err);
      return err;
    });
}

/**
 * 查询打标记录列表
 * @param params 查询参数
 * @returns 打标记录列表数据
 */
export function queryMarkingRecordListAPI(params) {
  return defHttp
    .post(
      {
        url: Api.queryMarkingRecordList,
        params: params,
      },
      {
        isTransformResponse: false,
      },
    )
    .then((res) => {
      return res;
    })
    .catch((err) => {
      console.error('查询打标记录列表失败:', err);
      return err;
    });
}
